//包装函数
module.exports = function(grunt) {
    //任务配置，所有插件的配置信息
    grunt.initConfig({
        //获取 package.json 的信息
        pkg: grunt.file.readJSON('package.json'),

        
        connect: {
            server: {
                options: {
                    protocol: 'http',
                    port: 8000,
                    hostname: "localhost",
                    keepalive:true,
                    livereload: true,
                    open:true,
                    base: ['src/']
                }
            }
        },


        uglify: {
            options: {
                stripBanners: true,
                banner: '/*! <%=pkg.name%>-<%=pkg.version%>.js <%= grunt.template.today("yyy-mm-dd") %> */\n'
            },
            build: {
                src: "src/test.js",
                dest: 'build/<%=pkg.name%>-<%=pkg.version%>.js.min.js'
            }
        },

        jshint: {
            // build: ['Gruntfile.js', 'src/*.js'],
            checkJs: ['src/*.js'],
            options: {
                jshintrc: '.jshintrc'
            }
        },

        watch: {
            build: {
                files: ['src/*.js', 'src/*.css'],
                tasks: ['jshint', 'uglify'],
                options: { spawn: false }
            }
        }

    });

    //告诉 grunt 我们将要使用的插件
    grunt.loadNpmTasks('grunt-contrib-uglify');
    grunt.loadNpmTasks('grunt-contrib-jshint');
    grunt.loadNpmTasks('grunt-contrib-watch');
    grunt.loadNpmTasks('grunt-contrib-connect');

    //告诉 grunt 当我们在终端中输入grunt时需要做什么（注意先后顺序）
    grunt.registerTask('default', ['jshint', 'uglify', 'watch', 'connect']);
};
